if(ITK_USE_GPU)
  itk_module_test()

  set(
    ITKGPUPDEDeformableRegistration-tests
    itkGPUDemonsRegistrationFilterTest.cxx
    itkGPUDemonsRegistrationFilterTest2.cxx
  )

  set(
    ITKGPUPDEDeformableRegistrationTest_LIBRARIES
    ITKCommon;ITKGPUCommon;ITKGPUFiniteDifference;ITKGPUPDEDeformableRegistration;ITKStatistics;ITKSpatialObjects;ITKPath;ITKOptimizers;ITKIOBMP;ITKIOBioRad;ITKIOGDCM;ITKIOGIPL;ITKIOJPEG;ITKIOLSM;ITKIOMeta;ITKIONIFTI;ITKIONRRD;ITKIOPNG;ITKIOStimulate;ITKIOTIFF;ITKIOVTK;itksys
  )

  createtestdriver(ITKGPUPDEDeformableRegistration "${ITKGPUPDEDeformableRegistrationTest_LIBRARIES}"
                     "${ITKGPUPDEDeformableRegistration-tests}"
  )

  itk_add_test(
      NAME
      itkGPUDemonsRegistrationFilterTestDim2
      COMMAND
      ITKGPUPDEDeformableRegistrationTestDriver
      itkGPUDemonsRegistrationFilterTest
      2 # number of dimensions
    50 # number of iterations
    DATA{Input/LenaFix.png}
    DATA{Input/LenaMov.png}
    ${ITK_TEST_OUTPUT_DIR}/gpuDemonsRegistrationTest2D.mha
  )

  itk_add_test(
      NAME
      itkGPUDemonsRegistrationFilterTestDim3
      COMMAND
      ITKGPUPDEDeformableRegistrationTestDriver
      itkGPUDemonsRegistrationFilterTest
      3 # number of dimensions
    50 # number of iterations
    DATA{Input/LenaFix.png}
    DATA{Input/LenaMov.png}
    ${ITK_TEST_OUTPUT_DIR}/gpuDemonsRegistrationTest2D.mha
  )

  itk_add_test(
      NAME
      itkGPUDemonsRegistrationFilterTest2
      COMMAND
      ITKGPUPDEDeformableRegistrationTestDriver
      itkGPUDemonsRegistrationFilterTest2
      ${ITK_TEST_OUTPUT_DIR}/gpuDemonsRegistrationTest2Fixed.mha
      ${ITK_TEST_OUTPUT_DIR}/gpuDemonsRegistrationTest2Warped.mha
  )
endif()
